Computing devices, such as notebook computers, personal data assistants (PDAs), kiosks, and mobile handsets, have user interface devices, which are also known as human interface devices (HID). One user interface device that has become more common is a touch-sensor pad (also commonly referred to as a touchpad). A basic notebook computer touch-sensor pad emulates the function of a personal computer (PC) mouse. A touch-sensor pad is typically embedded into a PC notebook for built-in portability. A touch-sensor pad replicates mouse X/Y movement by using two defined axes that contain a collection of sensor elements that detect the position of a conductive object, such as a finger. Mouse right/left button clicks can be replicated by two mechanical buttons, located in the vicinity of the touchpad, or by tapping commands on the touch-sensor pad itself. The touch-sensor pad provides a user interface device for performing such functions as positioning a pointer, or selecting an item on a display. These touch-sensor pads may include multi-dimensional sensor arrays for detecting movement in multiple axes. The sensor array may include a one-dimensional sensor array, detecting movement in one axis.
One type of touchpad operates by way of capacitance sensing utilizing capacitance sensors. The capacitance, detected by a capacitance sensor, changes as a function of the proximity of a conductive object to the sensor. The conductive object can be, for example, a stylus or a user's finger. In a touch-sensor device, a change in capacitance detected by each sensor in the X and Y dimensions of the sensor array due to the proximity or movement of a conductive object can be measured by a variety of methods. Regardless of the method, usually an electrical signal representative of the capacitance detected by each capacitive sensor is processed by a processing device, which in turn produces electrical or optical signals representative of the position of the conductive object in relation to the touch-sensor pad in the X and Y dimensions. A touch-sensor strip, slider, or button operates on the same capacitance-sensing principle.
Another user interface device that has become more common is a touch screen. Touch screens, also known as touchscreens, touch panels, or touchscreen panels, are display overlays, which are typically pressure-sensitive (resistive), electrically-sensitive (capacitive), acoustically-sensitive (surface acoustic wave (SAW)) or photo-sensitive (infra-red) overlays. The effect of such overlays allows a display to be used as an input device, removing or augmenting the keyboard and/or the mouse as the primary input device for interacting with the display's content. Such displays can be attached to computers or, as terminals, to networks. There are a number of types of touch screen technologies, such as optical imaging, resistive, surface acoustical wave, capacitive, infrared, dispersive signal, piezoelectric, and strain gauge technologies. Touch screens have become familiar in retail settings, on point-of-sale systems, on ATMs, on mobile handsets, on kiosks, on game consoles, and on PDAs where a stylus is sometimes used to manipulate the graphical user interface (GUI) and to enter data.
A first type of conventional touchpad is composed of a matrix of rows and columns. Each row or column is composed of multiple sensor pads. However, all sensor pads within each row or column are coupled together and operate as one long sensor element. The number of touches a touchpad can resolve is not the same as the number it can detect. For example, even though a conventional touchpad may have the capability to detect two substantially simultaneous touches with an X/Y matrix, the conventional touchpad cannot resolve the location of the two substantially simultaneous touches. Conventional two-axes X/Y matrix touchpad/touchscreen designs are typically implemented as two independent linear sliders, placed physically orthogonal to each other, and substantially filling a planar area. Using a centroid-processing algorithm to determine the peak in sensed capacitance, one slider is used to determine the X location of a touch and the second slider is used to determine the Y location of the touch.
A second type of conventional touchpad, referred to as an all-points-addressable (APA) array, is composed of a similar X/Y array of sense elements. It differs from the first type in how the capacitance is sensed. Here, each row and column is composed of multiple sensor pads, and is capable of independent detection of a capacitive presence and magnitude at the intersection of each row and column. Typically, a processing device coupled to the array scans the array, such as from left to right and from top to bottom, and determines the centroid positions of all touches on the touchpad, using a centroid-processing or similar algorithm. The raw data, following centroid processing, is unsorted X/Y coordinate data of resolved touch positions, which can be used to determine cursor movement and gesture detection. The processing device processes the raw data, which is unsorted X/Y coordinate data, and the raw data is ordered based on the position of the sensors, the order in which the sensors were measured, or other ordering method, and not the relative touch that is detected. For example, one conventional method orders the data along the column index of the track pad. When filtering the unsorted position data to produce a smoother response for touch movement and gesture detection, the unsorted raw position data can disrupt filtering when the detection order of the touches changes. For example, the processing device can filter the raw position data to smooth the response of the movement of the touches on the touchpad. However, when the order of the touch detection changes, such as the order of the touches being detected changing in the vertical axis such as illustrated in FIG. 1, the filtering techniques, such as an infinite impulse response (IIR) filtering technique, would fail. Also, since the raw data is ordered based on the position of the sensors and not sorted according to the individual touches detected, the gesture recognition algorithms are more complex because they have to account for the data being unsorted, and often fail to work for multi-touch gestures crossing the same vertical axis (or horizontal axis when the scan is based on the row indexes).
FIG. 1 illustrates a detection profile 100 of two touches 101 (F1) and 102 (F2) with a conventional touchpad 110 at three discrete points in time (t1, t2, and t3). The detection profile 100 shows that the first touch 101 (F1) moves across the touchpad 110, while the second touch 102 (F2) remains approximately stationary. When scanning the sensors using a column index, the processing device, at the first time point, t1, receives an X/Y centroid coordinate corresponding to the first touch 101 (F1), and then the X/Y centroid coordinate corresponding to the second touch 102 (F2). However, at the second and third time point, the processing device receives an X/Y centroid coordinate corresponding to the second touch 102 (F2), and then the X/Y centroid coordinate corresponding to the first touch 101 (F1), resulting in a change in the order of the first and second resolved touches 101 and 102. When applying a filtering technique, the filtering technique will fail because of the change in the order of touches.